package com.greenold.service.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.greenold.common.annotation.Excel;
import com.greenold.common.core.domain.BaseEntity;

/**
 * 护理任务对象 care_task
 *
 * @author YueYang
 * @date 2025-10-14
 */
public class CareTask extends BaseEntity {
    private static long serialVersionUID = 1L;

    /**
     * 任务id
     */
    private Long id;

    /**
     * 护理员id
     */
    @Excel(name = "护理员id")
    private String caregiverId;

    /**
     * 护理员姓名
     */
    @Excel(name = "护理员姓名")
    private String nurseName;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String creator;

    /**
     * 项目id
     */
    @Excel(name = "项目id")
    private String projectId;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;


    /**
     * 老人id
     */
    @Excel(name = "老人id")
    private String elderId;

    /**
     * 老人姓名
     */
    @Excel(name = "老人姓名")
    private String oldName;

    /**
     * 老人年龄
     */
    @Excel(name = "老人年龄")
    private Integer elderAge;

    /**
     * 老人性别
     */
    @Excel(name = "老人性别")
    private String elderGender;


    /**
     * 老人图片
     */
    @Excel(name = "老人图片")
    private String elderPhoto;


    /**
     * 服务等级
     */
    @Excel(name = "服务等级")
    private String levelName;

    /**
     * 床位编号
     */
    @Excel(name = "床位编号")
    private String bedNo;

    /**
     * 实际床位编号
     */
    @Excel(name = "实际床位编号")
    private String realBedNo;

    /**
     * 项目类型
     */
    @Excel(name = "项目类型")
    private Integer taskType;

    /**
     * 预计服务时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expectedTime;

    /**
     * 执行记录
     */
    private String executionRecord;

    /**
     * 取消原因
     */
    private String cancelReason;

    /**
     * 状态（1：待执行，2：已执行，3：已关闭）
     */
    private String status;

    /**
     * 关联单据编号
     */
    private String relatedDocNo;

    /**
     * 执行图片
     */
    private String executionImages;

    /**
     * $column.columnComment
     */
    private Date createdAt;

    /**
     * $column.columnComment
     */
    private Date updatedAt;

    /**
     * $column.columnComment
     */
    @Excel(name = "创建人id", readConverterExp = "$column.readConverterExp()")
    private String createdBy;

    /**
     * $column.columnComment
     */
    private String updatedBy;

    /**
     * 扩展字段1
     */
    private String extend1;

    /**
     * 扩展字段2
     */
    private String extend2;

    public CareTask() {
    }

    public CareTask(String projectName, Long id, String caregiverId, String nurseName, String creator, String projectId, String elderId, String oldName, Integer elderAge, String elderGender, String elderPhoto, String levelName, String bedNo, String realBedNo, Integer taskType, Date expectedTime, String executionRecord, String cancelReason, String status, String relatedDocNo, String executionImages, Date createdAt, Date updatedAt, String createdBy, String updatedBy, String extend1, String extend2) {
        this.projectName = projectName;
        this.id = id;
        this.caregiverId = caregiverId;
        this.nurseName = nurseName;
        this.creator = creator;
        this.projectId = projectId;
        this.elderId = elderId;
        this.oldName = oldName;
        this.elderAge = elderAge;
        this.elderGender = elderGender;
        this.elderPhoto = elderPhoto;
        this.levelName = levelName;
        this.bedNo = bedNo;
        this.realBedNo = realBedNo;
        this.taskType = taskType;
        this.expectedTime = expectedTime;
        this.executionRecord = executionRecord;
        this.cancelReason = cancelReason;
        this.status = status;
        this.relatedDocNo = relatedDocNo;
        this.executionImages = executionImages;
        this.createdAt = createdAt;
        this.updatedAt = updatedAt;
        this.createdBy = createdBy;
        this.updatedBy = updatedBy;
        this.extend1 = extend1;
        this.extend2 = extend2;
    }

    public String getRealBedNo() {
        return realBedNo;
    }

    public void setRealBedNo(String realBedNo) {
        this.realBedNo = realBedNo;
    }

    public String getElderPhoto() {
        return elderPhoto;
    }

    public void setElderPhoto(String elderPhoto) {
        this.elderPhoto = elderPhoto;
    }

    public String getLevelName() {
        return levelName;
    }

    public void setLevelName(String levelName) {
        this.levelName = levelName;
    }

    public String getElderGender() {
        return elderGender;
    }

    public void setElderGender(String elderGender) {
        this.elderGender = elderGender;
    }

    public Integer getElderAge() {
        return elderAge;
    }

    public void setElderAge(Integer elderAge) {
        this.elderAge = elderAge;
    }

    /**
     * 获取
     *
     * @return id
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置
     *
     * @param id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取
     *
     * @return caregiverId
     */
    public String getCaregiverId() {
        return caregiverId;
    }

    /**
     * 设置
     *
     * @param caregiverId
     */
    public void setCaregiverId(String caregiverId) {
        this.caregiverId = caregiverId;
    }

    /**
     * 获取
     *
     * @return nurseName
     */
    public String getNurseName() {
        return nurseName;
    }

    /**
     * 设置
     *
     * @param nurseName
     */
    public void setNurseName(String nurseName) {
        this.nurseName = nurseName;
    }

    /**
     * 获取
     *
     * @return creator
     */
    public String getCreator() {
        return creator;
    }

    /**
     * 设置
     *
     * @param creator
     */
    public void setCreator(String creator) {
        this.creator = creator;
    }

    /**
     * 获取
     *
     * @return projectId
     */
    public String getProjectId() {
        return projectId;
    }

    /**
     * 设置
     *
     * @param projectId
     */
    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    /**
     * 获取
     *
     * @return projectName
     */
    public String getProjectName() {
        return projectName;
    }

    /**
     * 设置
     *
     * @param projectName
     */
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    /**
     * 获取
     *
     * @return elderId
     */
    public String getElderId() {
        return elderId;
    }

    /**
     * 设置
     *
     * @param elderId
     */
    public void setElderId(String elderId) {
        this.elderId = elderId;
    }

    /**
     * 获取
     *
     * @return oldName
     */
    public String getOldName() {
        return oldName;
    }

    /**
     * 设置
     *
     * @param oldName
     */
    public void setOldName(String oldName) {
        this.oldName = oldName;
    }

    /**
     * 获取
     *
     * @return bedNo
     */
    public String getBedNo() {
        return bedNo;
    }

    /**
     * 设置
     *
     * @param bedNo
     */
    public void setBedNo(String bedNo) {
        this.bedNo = bedNo;
    }

    /**
     * 获取
     *
     * @return taskType
     */
    public Integer getTaskType() {
        return taskType;
    }

    /**
     * 设置
     *
     * @param taskType
     */
    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    /**
     * 获取
     *
     * @return expectedTime
     */
    public Date getExpectedTime() {
        return expectedTime;
    }

    /**
     * 设置
     *
     * @param expectedTime
     */
    public void setExpectedTime(Date expectedTime) {
        this.expectedTime = expectedTime;
    }

    /**
     * 获取
     *
     * @return executionRecord
     */
    public String getExecutionRecord() {
        return executionRecord;
    }

    /**
     * 设置
     *
     * @param executionRecord
     */
    public void setExecutionRecord(String executionRecord) {
        this.executionRecord = executionRecord;
    }

    /**
     * 获取
     *
     * @return cancelReason
     */
    public String getCancelReason() {
        return cancelReason;
    }

    /**
     * 设置
     *
     * @param cancelReason
     */
    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }

    /**
     * 获取
     *
     * @return status
     */
    public String getStatus() {
        return status;
    }

    /**
     * 设置
     *
     * @param status
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 获取
     *
     * @return relatedDocNo
     */
    public String getRelatedDocNo() {
        return relatedDocNo;
    }

    /**
     * 设置
     *
     * @param relatedDocNo
     */
    public void setRelatedDocNo(String relatedDocNo) {
        this.relatedDocNo = relatedDocNo;
    }

    /**
     * 获取
     *
     * @return executionImages
     */
    public String getExecutionImages() {
        return executionImages;
    }

    /**
     * 设置
     *
     * @param executionImages
     */
    public void setExecutionImages(String executionImages) {
        this.executionImages = executionImages;
    }

    /**
     * 获取
     *
     * @return createdAt
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置
     *
     * @param createdAt
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取
     *
     * @return updatedAt
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置
     *
     * @param updatedAt
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取
     *
     * @return createdBy
     */
    public String getCreatedBy() {
        return createdBy;
    }

    /**
     * 设置
     *
     * @param createdBy
     */
    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * 获取
     *
     * @return updatedBy
     */
    public String getUpdatedBy() {
        return updatedBy;
    }

    /**
     * 设置
     *
     * @param updatedBy
     */
    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    /**
     * 获取
     *
     * @return extend1
     */
    public String getExtend1() {
        return extend1;
    }

    /**
     * 设置
     *
     * @param extend1
     */
    public void setExtend1(String extend1) {
        this.extend1 = extend1;
    }

    /**
     * 获取
     *
     * @return extend2
     */
    public String getExtend2() {
        return extend2;
    }

    /**
     * 设置
     *
     * @param extend2
     */
    public void setExtend2(String extend2) {
        this.extend2 = extend2;
    }

    @Override
    public String toString() {
        return "CareTask{" +
                "id=" + id +
                ", caregiverId='" + caregiverId + '\'' +
                ", nurseName='" + nurseName + '\'' +
                ", creator='" + creator + '\'' +
                ", projectId='" + projectId + '\'' +
                ", projectName='" + projectName + '\'' +
                ", elderId='" + elderId + '\'' +
                ", oldName='" + oldName + '\'' +
                ", elderAge=" + elderAge +
                ", elderGender='" + elderGender + '\'' +
                ", elderPhoto='" + elderPhoto + '\'' +
                ", levelName='" + levelName + '\'' +
                ", bedNo='" + bedNo + '\'' +
                ", realBedNo='" + realBedNo + '\'' +
                ", taskType=" + taskType +
                ", expectedTime=" + expectedTime +
                ", executionRecord='" + executionRecord + '\'' +
                ", cancelReason='" + cancelReason + '\'' +
                ", status='" + status + '\'' +
                ", relatedDocNo='" + relatedDocNo + '\'' +
                ", executionImages='" + executionImages + '\'' +
                ", createdAt=" + createdAt +
                ", updatedAt=" + updatedAt +
                ", createdBy='" + createdBy + '\'' +
                ", updatedBy='" + updatedBy + '\'' +
                ", extend1='" + extend1 + '\'' +
                ", extend2='" + extend2 + '\'' +
                '}';
    }
}
